/**
 * 项目名称:生成5个不重复的随机数
 *
 * @Author: 夏国倩
 * @Date: 2023/9/19 10:44
 * @Copyright
 */
package Random;
import java.util.Random;
public class RandomTest2 {
    public static void main(String[] args) {
        System.out.println("生成的5个不重复的随机数为：");
        Random sr=new Random();
        int[] arr=new int[5]; //定义一个长度为5的int类型数组
        for (int i=0;i< arr.length;i++){
            arr[i]=-1;//初始化让数组初始值为-1
        }
        int index=0;
        while (index<5){
            int a= sr.nextInt();
            //判断arr有没有这个a，如果没有这个a,就放进去
            if (!contains(arr,a)){
                arr[index++]=a;
            }
        }
        //遍历以上的数组
        for (int i:arr){
            System.out.println(i);
        }
    }
    /*
    单独编写一个方法，这个方法专门用来判断数组中是否包含某个元素
     @param arr 数组
     @param key 元素
     @return true表示包含，false表示不包含。
     */
    public static boolean contains(int[] arr,int key){
        /*
        这个方案bug。（排序出问题了。）
        对数组进行升序
        Arrays.sort(arr);
        进行二分法查找
         二分法查找的结果 >= 0说明，这个元素找到了，找到了表示存在！
        return Arrays.binarySearch(arr, key) >= 0;
        */
        for (int i=0;i< arr.length;i++){
            if (arr[i]==key){
                // 条件成立了表示包含，返回true
                return true;
            }
        }
        // 这个就表示不包含！
        return false;
    }
}
